package com.new2i.dao.mapper;

import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.new2i.model.UserEntity;

/**
 * User类的sql 接口
 * @since 2015/08/26
 * @author 2i
 *
 */
public interface UserMapper {

	/**
	 * 根据id查询用户信息
	 * 
	 * @author 2i
	 * @since 2015/09/01
	 * @param user_id
	 * @return
	 */
	HashMap<String, Object> getUserInfoById(final int user_id);
	
	
	/**
	 * 根据城市查询用户
     * @author zhoushuipin
     * @param city
     * @return
     */
    List<UserEntity> getUserIdByCity(@Param("city") final String city);
    

	/**
	 * 根据用户wxid查询用户id 集合
	 * 
	 * @since 2015/08/27
	 * @author 2i
	 * @update 08/31 YangKang add condition and more result field, revise result
	 *         type to HashMap
	 * @param wxid
	 * @param public_number_source
	 * @param source
	 * @return
	 */
	List<HashMap<String, Object>> selectUserInfoByWxid(@Param("wxid") final String wxid,
			@Param("public_number_source") final int public_number_source,
			@Param("source") final int source);
	
	
	/**
	 * 新增用户
	 * 
	 * @since 2015/08/27
	 * @author 2i
	 * @param user
	 */
	int insertUser(final UserEntity user);
	
	/**
	 * 通过用户user_id信息来更新emr_id
	 *  
	 * @since 2015/08/27
	 * @author 2i
	 * @param user_id
	 */
	void updateUserEmrNoByUserId(@Param("user_id") final int user_id); 
	
	/**
	 * 通过wxid来获取用户信息
	 * 
	 * @author 2i
	 * @since 2015/08/31
	 * @param wxid
	 * @param source
	 * @return
	 */
	List<HashMap<String, Object>> selectUserInfoByWxid(@Param("wxid") final String wxid,
			@Param("source") final int source);
	
	/**
	 * 通过user_id修改用户信息
	 * 
	 * @author 2i
	 * @since 2015/09/01
	 * @param user
	 * @return
	 */
	int updateUserInfoByUserId(UserEntity user);
}
